创建Java类并实例化 |
您所在的位置:网站首页 › 属性string name › 创建Java类并实例化 |
类的设计: public class TestPerson{ class person{ //属性: String name; int age; boolean sex; //方法 public void eat(){ System.out.println("人吃饭"); } }使用: public static void main(String[] ages){ person p1 = new person();//类的实例化,创建类的对象 } }面向对象思想的落地法则一: 1、设计类并设计类的成员(成员变量&成员方法) 2、通过类来创建类的对象(也称作类的实例化) 3、通过“对象.属性”或“对象.方法”来调用完成相应的功能 public static void main(String[] ages){ person p1 = new person();//类的实例化,创建类的对象 p1.name="花花"; } }每new一个实体类,即创建一个实体类对象,类的对象所有的属性皆初始化。 public static void main(String[] ages){ person p1 = new person();//类的实例化,创建类的对象 //此时p1.name=null; p1.age=0; p1.sex=false; } }创建多个对象,彼此各自拥有一套类的属性,当对其中一个对象的属性进行修改时,不会影响到其他属性值。 public static void main(String[] ages){ person p1 = new person();//类的实例化,创建类的对象 person p2 = new person(); person p3 = p1; //这种情况不是创建,而是p3和p1共同使用一个对象实体 } }类的属性(成员变量) 成员变量VS局部变量 相同点: 1、遵循变量的声明格式:数据类型 变量名 = 初始化值; 2、都有作用域 不同点: 1、声明的位置不同,成员变量声明在类里、方法外局部变量声明在方法内、方法的形参部分、代码块内 2、成员变量的修饰符有四个public, private, protected, 缺省局部变量没有修饰符,与所在的方法修饰符相同 3、初始化值:全部都一定会有初始化值 成员变量:如果在声明的时候不显示赋值,那么不同数据类型会有不同的默认初始化值 引用类型变量的初始化值是null。 局部变量:一定要显示赋值。(局部变量没有默认的初始化值) 4、二者在内存中的位置不同,成员变量是在堆空间中,局部变量是在栈空间中 PS:(不明不白的PS,以后略过)方法中的局部变量在使用后将值传给实体类的属性,此时局部变量就挂了消失在栈空间,而值则传给了属性,传到了堆空间中 eg: public void name(String n){ name =n; } p1.name("花花");ps:有关堆和栈的小白理解: 栈空间,在画图的时候较小的空间,在栈里面存放的对象的引用和局部变量,换个理解都是定义氏的抽象,非实体类东西。 堆空间,较大的空间,在堆空间内都是被new出来的实体和成员变量。 栈空间存放的是定义,虚的。局部变量存在方法中还是定义类的东西 堆空间放的实际的,实的。成员变量是指被new出来的初始化成员变量 在这里顺带还能理解抽象类的第一步,对实体进行描写,没有进行实际应用。 总结:关于变量的分类 按照基本数据类型的不同:基本数据类型(八种)和引用数据类型 按照声明位置的不同:成员变量和局部变量 补:在方法体外,类体内声明的变量成为成员变量 在方法体内部声明的变量称为局部变量 成员变量:实体变量(不以static修饰) 类变量(以static修饰) 局部变量:形参(方法签名中定义的变量) 方法局部变量(在方法内定义) 代码块局部变量(在代码块内定义) 注意:二者在初始化值方面的异同 同:都有生命周期 异:局部变量除形参外,需显示初始化 类的方法:提供某种功能的实现 1、实例:public void eat(){} public String getName(){} public void setName(String n){} 格式:权限修饰符 返回值类型(void:无返回值类型/具体的返回值) 方法名(形参){具体方法实现,想完成什么样的功能} PS:权限修饰符和成员变量修饰符一样(public, private, protected, 缺省) 2、注意:void,表明此方法不需要返回值 ( ps:小白理解法,没有返回值就相当于安排一个人去忙一件事,忙完之后他继续去做自己的事不需要再回来告知你事情完成了。) 有返回值的方法,在方法的最后一定有return +返回值类型对应d额变量 语句, 通过对象调用方法时,会将方法的返回值提供给方法的调用者,也就是当前的对象。 记忆:void和return不可以同时出现一个方法内。像一对“冤家”。 3、方法内可以调用本类的其他方法和属性,但是不能在方法内再定义方法 eg:public void info(){ eat(); sleep(); } 对象的创建和使用 使用new+构造器创建一个新的对象; 使用对象.对象成员的方式访问对象成员(包括属性和方法); eg:查看eg文件中person和testPerson 类的访问机制 在一个类中的访问机制:类中的方法可以直接访问类中的成员变量。(例外,static方法访问非static,编译不通过) 在不同类中的访问机制:先创建要访问类的对象,再用对象访问类中定义的成员。 在实际的案例使用中,方法类和属性类会严格的区分开。 属性类也就是开发中常用的实体类,POJO内会有属性的声明,以及属性相关的get、set方法,(ps:通过get、set方法可以修改属性的值)。 方法类会分为接口和实现类两个部分,(ps:接口为抽象类),实现类继承接口,来实现接口的方法。 PS部分可能描述不准确,如果有错的欢迎评论指正 1、面向对象的编程关注与类的设计 2、设计类实际上就是设计类的成员 3、基本的类的成员:属性(成员变量:Field)&方法(Method) |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |